package com.py.credit.entity.enums;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.py.credit.entity.common.OptionalColumn;
	

	public enum UserMangerEnum {
		
		USERNAME("username", "用户名", "varchar", true, "input", true, new HashMap<String, String>(), true,true),
		ZTMC("ztmc", "企业名称", "varchar", true, "input", true, new HashMap<String, String>(), true,true),
		FDDBR("fddbr", "企业法人", "varchar", true, "input", true, new HashMap<String, String>(), true,true),
		BM("bm", "社会统一代码", "varchar", true, "input", true, new HashMap<String, String>(), false,false),
		ZHZT("zhzt", "账号状态", "varchar", true, "select", true, new HashMap<String, String>(){
			
			/**
			 * 
			 */
			private static final long serialVersionUID = 388533474171990739L;

			{
				put("D","冻结");
				put("J","正常");
			}
		}, true,true),
		CREATETIME("createTime", "注册时间", "timestamp", true, "input", true, new HashMap<String, String>(), false,true),
		SHZT("shzt", "审核状态", "varchar", true, "select", true, new HashMap<String, String>(){

			/**
			 * 
			 */
			private static final long serialVersionUID = 388533474171990739L;

			{
				put("S", "审核中");
				put("U", "驳回");
				put("T", "审核通过");
			}
		}, true,true);
		private String colNameEN;
		private String colNameCN;
		private String type;
		private boolean defaultShow;
		private String widget;
		private boolean fuzzy;
		private HashMap<String, String> widgetValue;
		private boolean searchIsShow;
		private boolean advanceConditionShow;
		public String getColNameEN() {
			return colNameEN;
		}
		public void setColNameEN(String colNameEN) {
			this.colNameEN = colNameEN;
		}
		public String getColNameCN() {
			return colNameCN;
		}
		public void setColNameCN(String colNameCN) {
			this.colNameCN = colNameCN;
		}
		public String getType() {
			return type;
		}
		public void setType(String type) {
			this.type = type;
		}
		public boolean isDefaultShow() {
			return defaultShow;
		}
		public void setDefaultShow(boolean defaultShow) {
			this.defaultShow = defaultShow;
		}
		public String getWidget() {
			return widget;
		}
		public void setWidget(String widget) {
			this.widget = widget;
		}
		public boolean isFuzzy() {
			return fuzzy;
		}
		public void setFuzzy(boolean fuzzy) {
			this.fuzzy = fuzzy;
		}
		public HashMap<String, String> getWidgetValue() {
			return widgetValue;
		}
		public void setWidgetValue(HashMap<String, String> widgetValue) {
			this.widgetValue = widgetValue;
		}
		public boolean isSearchIsShow() {
			return searchIsShow;
		}
		public void setSearchIsShow(boolean searchIsShow) {
			this.searchIsShow = searchIsShow;
		}
		public boolean isAdvanceConditionShow() {
			return advanceConditionShow;
		}
		public void setAdvanceConditionShow(boolean advanceConditionShow) {
			this.advanceConditionShow = advanceConditionShow;
		}
		private UserMangerEnum(String colNameEN, String colNameCN, String type, boolean defaultShow, String widget,
				boolean fuzzy, HashMap<String, String> widgetValue, boolean searchIsShow,
				boolean advanceConditionShow) {
			this.colNameEN = colNameEN;
			this.colNameCN = colNameCN;
			this.type = type;
			this.defaultShow = defaultShow;
			this.widget = widget;
			this.fuzzy = fuzzy;
			this.widgetValue = widgetValue;
			this.searchIsShow = searchIsShow;
			this.advanceConditionShow = advanceConditionShow;
		}
		
		public static List<OptionalColumn> getOptionalColumns() {

			List<OptionalColumn> OptionalColumns = new ArrayList<OptionalColumn>();
			UserMangerEnum[] values = UserMangerEnum.values();
			for (UserMangerEnum value : values) {
				OptionalColumn optionalColumn = new OptionalColumn(value.getColNameEN(), value.getColNameCN(),
						value.getType(), value.isDefaultShow(), value.getWidget(), value.isFuzzy(), value.getWidgetValue(),
						value.isSearchIsShow());
				OptionalColumns.add(optionalColumn);
			}
			return OptionalColumns;
		}

		public static List<String> getDefaultShowColumnEN() {
			List<String> columns = new ArrayList<String>();
			UserMangerEnum[] values = UserMangerEnum.values();
			for (UserMangerEnum value : values) {
				if (value.isDefaultShow()) {
					columns.add(value.getColNameEN());
				}
			}
			return columns;
		}

		public static List<OptionalColumn> getAdvancedConditionColumns() {
			List<OptionalColumn> OptionalColumns = new ArrayList<OptionalColumn>();
			UserMangerEnum[] values = UserMangerEnum.values();
			for (UserMangerEnum value : values) {
				if (value.isAdvanceConditionShow()) {
					OptionalColumn optionalColumn = new OptionalColumn(value.getColNameEN(), value.getColNameCN(),
							value.getType(), value.isDefaultShow(), value.getWidget(), value.isFuzzy(),
							value.getWidgetValue(), value.isSearchIsShow());
					OptionalColumns.add(optionalColumn);
				}
			}
			return OptionalColumns;
		}
		
	
}
